package cn.yzgy.yzgyoa.ucenter.service;

import cn.yzgy.yzgyoa.ucenter.dto.RoleDTO;
import cn.yzgy.yzgyoa.ucenter.entity.SysRole;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 用户角色表 服务类
 * </p>
 *
 * @author Yqsen
 * @since 2019-08-20
 */
public interface ISysRoleService extends IService<SysRole> {

    /**
     * 根据用户UID获取用户角色列表
     * @param uid uid
     * @return 用户角色列表
     */
    List<SysRole> getRolesByUid(String uid);


    /**
     * 查询所有列表数据
     * @param ipage 数据展示页
     * @param wrapper 查询条件集
     * @return 数据页
     */
    IPage<SysRole> queryAll(IPage<SysRole> ipage, QueryWrapper<SysRole> wrapper);

    /**
     * 获取插入数据主键Id
     * @return 新增数据的主键Id
     */
    int newId();

    /**
     * 查重
     * @param sysRole 角色对象
     * @return 是否重复 1，重复；0，没重复
     */
    int check(SysRole sysRole);
    /**
     * 添加数据
     * @param sysRole 角色对象
     * @return 新增数据条数
     */
    int addSysRole(SysRole sysRole);

    /**
     * 根据主键删除数据
     * @param roleId 角色id
     * @return 删除数据条数
     */
    int delSysRole(List<String> roleId);

    /**
     * 获取下拉数据
     * @return 角色下拉数据列表
     */
    List<SysRole> getSysRoleList();

    /**
     * 查询所有列表数据
     * @param ipage 页面
     * @param num 从第num条数据开始查询
     * @param size 查询size条数据
     * @return 用户数据页
     */
    IPage<RoleDTO> queryAllRoleDTO(IPage<RoleDTO> ipage, Integer num, Integer size);

    /**
     * 展示数据总条数
     * @return 展示数据总条数
     */
    String countData();
    /**
     * 修改数据状态
     * @param result 主键集合
     * @param way 数据操作方式
     * @return 修改数据条数
     */
    int updateRoleData(Integer result, String way);
    /**
     * 修改数据内容
     * @param sysRole 主键集合
     * @return 修改数据条数
     */
    int changeRoleInfo(SysRole sysRole);
}
